package com.huhao.concurrency.example.singleton;

import com.huhao.concurrency.annoations.NotThreadSafe;

/**
 * 懒汉模式
 * 单例的实例在第一次使用时候进行创建
 * <p>
 * but：只能单线程中是单例的，多线程调用时可能会创建多个
 */
@NotThreadSafe
public class SingletonExample {
    /**
     * 单例构造器
     * 必须私有，不能外部调用
     */
    private SingletonExample() {

    }

    //单例对象
    private static SingletonExample instance = null;

    //静态的工程方法
    public static SingletonExample getInstance() {
        if (instance == null) {
            instance = new SingletonExample();
        }
        return instance;
    }
}
